// 校验js文件
var relationCheck="";
const gaoyjCheckParams={}


const validRules = {
    // 新建客户-证件类型和证件号码的校验
    gaoyj_checkIdCardSType(rule, value, callback){
        if(value.replace(" ","")==""){
            callback(new Error('请填写证件类型!'));
        }else{
            relationCheck=value;
            callback();
        }

    },
    // 校验证件号码
    gaoyj_checkIdCardNum(rule, value, callback){
        var that=this;
        // 6代表营业执照的校验
        if(relationCheck=="6"){
            if(value.replace(" ","").length==13){
               callback();
            }else if(value.replace(" ","").length == 15){
                callback();
            }else if(value.replace(" ","").length == 18){
                if(validRules.gaoyj_isUSCC(value)){
                    callback();
                }else{
                    callback(new Error('统一社会信用代码证书不允许包含I、O、Z、S、V!'));
                }
            }else{
                if(value.replace(" ","")==""){
                  callback(new Error('请填写证件号码'));
                }else{
                  callback(new Error('请输入13、15、18位营业执照编号!'));  
                }
            }
        }else if(relationCheck=="15"){//组织机构代码证
            var orgCode= /^[a-zA-Z\d]{8}[a-zA-Z\d]$/;
            if(value.replace(" ","").length == 0){
                callback(new Error("证件号码不能为空!"));
            }else if(value.replace(" ","").length == 9){
                    if(orgCode.test(value)){
                        callback();
                    }else{
                        callback(new Error('请输入正确的组织机构代码!'));
                    }
            }else if(value.replace(" ","").length == 10){
                var str = value.replace(" ","").substr(8,1);
                if(str!="-"){
                    callback(new Error('请输入正确的组织机构代码!'));
                   
                }else{
                    value = value.replace(" ","").replace("-","");
                   if(orgCode.test(value)){
                    callback();
                   }else{
                    callback(new Error('请输入正确的组织机构代码!'));
                 
                    }
                }
            }else if(value.replace(" ","").length == 18){
                if(validRules.gaoyj_isUSCC(value)){
                    callback();
                    }else{
                    callback(new Error('统一社会信用代码证书不允许包含I、O、Z、S、V!'));
                    
                   }
            }else{
                callback(new Error('请输入正确的组织机构代码!'));
          
            }	       
        }else if(relationCheck == "34"){//事业单位法人证书
            if(value.replace(" ","").length == 0){
                callback(new Error('请填写证件号码!'));
            }else{
                if(value.replace(" ","").length>=12 && value.length<=64){
                    // return true;
                    callback()
                }else{
                    callback(new Error('请输入12-64位的事业单位法人证书号码!'));				   				
                }
             }				   		
        }else if(relationCheck=="43"){//社会团体法人登记证书
            if(value.replace(" ","").length == 0){
               
                callback(new Error('请填写证件号码!'));
            }else{
                if(value.replace(" ","").length>=4 && value.length<=64){
                    callback();
                }else{
                    callback(new Error('请输入4-64位的社会团体法人登记证书号码!'));
                  
                }	
            }				   			
        }else if(relationCheck == "49"){//统一社会信用代码
            var patrn = /^[0-9A-Z]+$/;
             　　//18位校验及大写校验
            　　 if(value.replace(" ","").length != 18) {
                   callback(new Error('统一社会信用代码证书由18位阿拉伯数字或大写英文字母组成，英文字母不允许包含I、O、Z、S、V'));
                    //   return false;   
            　     }else if(patrn.test(value) == true){
                         var arr = new Array();				   			 		
                         var i = 'I';
                         var o = 'O';
                         var z = 'Z';
                         var s = 'S';
                         var v = 'V';				   			 		
                         if(value.replace(" ","").indexOf(i)>0 || value.replace(" ","").indexOf(o)>0 || value.replace(" ","").indexOf(z)>0 || value.replace(" ","").indexOf(s)>0 || value.replace(" ","").indexOf(v)>0){
                            callback(new Error('统一社会信用代码证书不允许包含I、O、Z、S、V!'));
                            
                          
                         }else{
                            callback()
                         }					   			 
                }else{
                    callback(new Error('统一社会信用代码证书由18位阿拉伯数字或大写英文字母组成，英文字母不允许包含I、O、Z、S、V!'));
                    // return false;
                }
         }else if((relationCheck == '72' || relationCheck == '7')){
            callback()
         }else if(relationCheck != '72' && relationCheck != '6' && relationCheck != '7' && relationCheck != '15' && relationCheck != '34' && relationCheck != '43' && relationCheck != '49'){
            if(value.replace(" ","").length == 0){
                callback(new Error('请填写证件号码!'));
            }else{
                callback()
            }
        }
    },

    gaoyj_isUSCC(certNBR){
        var patrn = /^[0-9A-Z]+$/;
        if(patrn.test(certNBR) == true){
                 var arr = new Array();		   			 		
                 var i = 'I';
                 var o = 'O';
                 var z = 'Z';
                 var s = 'S';
                 var v = 'V';				   			 		
                if(certNBR.indexOf(i)>0 || certNBR.indexOf(o)>0 || certNBR.indexOf(z)>0 || certNBR.indexOf(s)>0 || certNBR.indexOf(v)>0){
                    //setMsg('统一社会信用代码证书不允许包含I、O、Z、S、V!');
                    return false;
                }else{
                    return true;
                 }			
        }
    },
    //校验审核人
    gaoyj_checkAuditName(rule, value, callback){
        if(relationCheck=="7" || relationCheck=="72"){
            if(value==""){
                callback(new Error('请选择审核人!'));
            }else{
                callback()
            }
        }else{
            callback()
        }
    },
    // 当选择证件类型选择党政军的时候-证件照片必传
    gaoyj_checkedPhotoPath(rule, value, callback){
        if(relationCheck=="7" || relationCheck=="72"){
            if(value==""){
                callback(new Error('请上传证件照片!'));
            }else{
                callback()
            }
        }else{
            callback()
        }
    },

    // // 新建客户查询省客户-校验联系人名称和电话号码
    gaoyj_checkeMmobilePhone(rule, value, callback){
        if(value.replace(" ","").length==11){
            callback()
        }else if(value.length==0){
            callback(new Error("请填写联系人信息!"));
        }else{
            callback(new Error("请填写11位手机号!"));
        }
    },
    // 客户列表-证件地址-校验
    gaoyj_checkedCustCertAddr(rule, value, callback){
        if(value.replace(" ","")=="" && relationCheck != "7"){
            callback(new Error("证件地址必填!"));
        }
        if(0 < value.replace(" ","").length && value.replace(" ","").length < 7){
            callback(new Error("证件地址不能少于七位!"));
        }else {
            callback()
        }
    },
    // 是否是一般纳税人
    gaoyj_checkgeneralTaxpayerFlag(rule, value, callback){
      gaoyjCheckParams['generalTaxpayerFlag']=value;
      callback();
    },
    // 税务登记号-校验
    gaoyj_taxId(rule, value, callback){
        var length=value.length;
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1" && validRules.trim(value)==""){
            if(validRules.trim(value)=="" || value==null || value==undefined){
                callback(new Error("请填写税务登记号!"));   
            }else{
                callback();
            }

            if(length!=15 && length!=18 && length!=20){
                callback(new Error("税务登记号长度为15位或18位或20位!"));
            }else{
                callback();
            } 

        }else{
            if(validRules.trim(value)=="" || value==null || value==undefined){
                callback();
            }else if(length!=15 && length!=18 && length!=20){
                callback(new Error("税务登记号长度为15位或18位或20位!"));
            }else{
                callback();
            }  
            
        }
    },

    // 税务登记号所属省份
    gaoyj_taxProvinceCode(rule, value, callback){
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1" && validRules.trim(value)==""){
            callback(new Error("请选择税务登记号所属省份!"));   
        }else{
            callback();
        }
    },
    // 税务登记联系电话
    gaoyj_taxRelaTel(rule, value, callback){
        var length=validRules.trim(value).length;
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(length==0){
                callback(new Error("请填写税务登记联系电话!")); 
              
            }else{ 
                var mobilephone=/^[\d+]+[\d-+]*$/;
                var mobile = validRules.trim(value);
                if (mobilephone.test(mobile)) {
                    if(mobile.length<6){
                        callback('联系电话长度不能小于6位!');
                    }else{
                        callback();
                    }
                }else{
                    callback('联系电话中只能包含0-9的数字和"-"或者"+"号,且以0-9的数字或者"+"号开头!');  
                }
            }
        }else{
            if(value==null||value.length==0){
               callback();
          }else{
                var mobilephone=/^[\d+]+[\d-+]*$/;
                var mobile = validRules.trim(value);
                if (mobilephone.test(mobile)) {
                    if(mobile.length<6){
                        callback('联系电话长度不能小于6位!');
                    }else{
                        callback();
                    }
              }else{
                callback('联系电话中只能包含0-9的数字和"-"或者"+"号,且以0-9的数字或者"+"号开头!');
              }
          }
        }
       
    },
    // 税务开户银行名称
    gaoyj_taxBankName(rule, value, callback){
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(validRules.trim(value)!=undefined && validRules.trim(value)!=""&& value!=null){
                callback();
            }else{
                callback(new Error("请填写税务开户银行名称!")); 
            }
        }else{
            callback();
        }
       
    },
    // 税务开户银行帐号
    gaoyj_taxBankAcct(rule, value, callback){
        var length=validRules.trim(value).length;
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(validRules.trim(value)!=undefined&&length!=0){
                callback();
            }else{
                callback(new Error("请填写税务开户银行帐号!")); 
            }
        }else{
            callback();
        }
       
    },
    // 税务登记地址
    gaoyj_taxRelaAddr(rule, value, callback){
        var length=validRules.trim(value).length;
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(validRules.trim(value)!=undefined&& length!=0){
                callback();
            }else{
                callback(new Error("请填写税务登记地址!")); 
            }
        }else{
            callback();
        }
      
    },
     // 是否开增值发票
    gaoyj_vatInvoicesFlag(rule, value, callback){
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(value.replace(" ","")!=undefined&&value.replace(" ","")!=""){
                callback();
            }else{
                callback(new Error("请填写是否开增值发票!")); 
            }
        }else {
            callback();
        }
    },
    // 提交税务审核日期
    gaoyj_submitDate(rule, value, callback){
        if(value != ""){
            gaoyjCheckParams['submitTaxAuditData'] = new Date(value).getTime();
        }
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(value ==""){
                callback(new Error("【提交税务审核日期】不能为空!"));
           }else{
             callback();
           } 
        }else{
            callback();
        }  
    },
    // 审核状态
    gaoyj_audState(rule, value, callback){
        gaoyjCheckParams['audState']=value;
        if(gaoyjCheckParams['generalTaxpayerFlag']=="1"){
            if(value!=undefined && value!=""){
                callback();
            }else{
                callback(new Error("请选择审核状态!")); 
            }
        }else{
            callback();
        }
       
    
    },
 
    // 通过审核日期
    gaoyj_approvalTime(rule, value, callback){
        if(gaoyjCheckParams['audState']=="1" && value == ""){
            callback(new Error("【审核状态】为通过时,【税务审核通过日期】不能为空!")); 
        }
        let taxApprovalDate = new Date(value).getTime();
        if(taxApprovalDate < gaoyjCheckParams['submitTaxAuditData']){
            callback(new Error(`【税务审核通过日期】不能小于【提交税务审核日期】`))
        }else {
            callback()
        }
       
    },
       // 账户审核人校验
       gaoyj_checkedAuditor(rule, value, callback){
        if(validRules.trim(value)==""){
            callback(new Error("请选择审核人!")); 
        }else{
            callback();
        }
   
},
    // 去掉字符串的前后中间空格
    trim(str){
        str= str.replace(" ","");
        return  str;
    },


    
    




}
export default validRules ;